The present invention relates to address assignable modular devices which can be inserted into an existing bus structure. Specifically, the invention is directed to devices in the Small Computer System Interface (SCSI) environment.
Devices which communicate over a data bus are well known. Techniques for assigning addresses for each of the communicating devices is described, for example, in U.S. Pat. No. 4,360,870, and a related IBM TDB, Vol. 22, No. 3, Aug. 1979, pages 882-883. The apparatus described in these references has the capability of assigning addresses to a device configured on a data bus.
The SCSI environment has requirements which are not satisfied by the address assignment techniques described in these references. Specifically, the techniques of the prior art assume that assignable address space is completely under control of the particular device performing the address assignment function. In the SCSI environment, some devices conceivably will have hardwired, fixed and therefore unchangeable addresses. Any device performing address assignment must first take into account the presence of any devices having fixed addresses and exclude these fixed addresses from the inventory of assignable addresses. There is the necessity to identify the presence of such devices having fixed addresses before configuring additional devices which may have the feature of address assignability.
A further problem in the SCSI bus environment is that the device performing address assignment may precede or follow the devices which are to receive address assignments. The SCSI bus is a two-dimensional structure and the random nature of the location of the address assigning device requires that a capability must be provided for addressing in either of the two directions in which the bus runs, so that later-added devices, as well as previously supplied devices may be address configured.
Given this environment, it would therefore be advantageous to provide a device which can assign addresses in either of the two directions in which the SCSI bus runs. It would be necessary to permit pre-existing devices, which do not have an address assignment capability, to remain on the bus and their presence accounted for during any subsequent assignment of addresses. A method must be provided for quickly determining the presence of devices having non-assignable addresses and that the remaining devices be quickly assigned addresses distinct from the fixed address devices.
Finally, it is necessary to maintain the bus overhead requirements to a minimum so that cabling and IC substrate overhead are maintained at a minimum.